package cn.tedu.smartos.activity.service;

import cn.tedu.smartos.activity.pojo.dto.*;
import cn.tedu.smartos.activity.pojo.entity.ActivityCategory;
import cn.tedu.smartos.activity.pojo.vo.ActivityCategoryVO;
import cn.tedu.smartos.activity.pojo.vo.ActivityVO;
import cn.tedu.smartos.base.response.JsonResult;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface ActivityService {
    // 所有活动列表
    PageInfo<ActivityVO> list(ActivityQuery query);

    // 我的活动列表
    List<ActivityVO> getMyActivities(String username);

    // 活动详情
    ActivityVO detail(Long activityId);

    // 删除活动
    void delete(List<Long> activityIds);

    // 修改活动
    void update(ActivityUpdateParam updateParam);

    // 发布活动
    void publish(ActivityAddParam addParam);

    // 待审核活动列表
    PageInfo<ActivityVO> waitAudit(ActivityQuery query);

    // 添加活动分类
    void addCategory(ActivityCategory activityCategory);

    // 删除活动分类
    void deleteCategory(List<Integer> categoryIds);

    // 修改活动分类
    void updateCategory(ActivityCategory activityCategory);

    // 分类列表
    PageInfo<ActivityCategoryVO> listCategory(ActivityQuery query);

    // 报名活动
    void join(ParticipationAddParam participation);

    // 活动签到
    JsonResult checkIn(ParticipationAddParam participation);

    // 活动签退
    void checkout(ParticipationCheckoutParam participation);
    void confirmSchedule(Long scheduleId, Long userId);
}